// 用户相关的 API 接口

import request from '@/utils/request.js'
// 导入 axios
import axios from 'axios'

// 登录的 API 接口
export const loginAPI = data => {
  return request.post('/v1_0/authorizations', data)
}

// #region 剖析 loginAPI 的封装思路
// export const loginAPI = () => {
//   // data 是 Promise 对象
//   const data = request.post('/v1_0/authorizations', { mobile: '13888888888', code: '246810' })
//   // 把 Promise 对象，当做了 loginAPI 方法的返回值
//   return data
// }

// 为 loginAPI 方法定义形参 data， data 的格式 { mobile: '13888888888', code: '246810' }
// export const loginAPI = (data) => {
//   return request.post('/v1_0/authorizations', data)
// }
// #endregion

// 获取用户基本信息的 API
export const getUserInfoAPI = () => {
  return request.get('/v1_0/user')
}

// 获取用户简介信息的 API
export const getUserProfileAPI = () => {
  // delete 请求类似于 get 请求，没有请求体，只有请求头
  return request.get('/v1_0/user/profile')
}

// 更新用户简介信息的 API（Profile 这个单词是简介的意思）
// obj 可能是以下两种格式：
// {name: 'xxx'} 或 {birthday: '2012-12-12'}
export const updateUserProfileAPI = (obj) => {
  // patch 请求、put 请求类似于 post 请求，它们都有请求体
  return request.patch('/v1_0/user/profile', obj)
}

// 修改头像的 API（形参中的 fd 是 FormData 格式的数据）
export const updateAvatarAPI = (fd) => {
  return request.patch('/v1_0/user/photo', fd)
}

// 换取 token 的 API
export const exchangeTokenAPI = (refreshToken) => {
  // 疑问：是直接基于 request 发起请求；还是直接基于 axios 发起请求？？？
  // 艾克sei哦斯
  return axios({
    method: 'PUT',
    // 这里必须填写完整的请求 URL 地址
    url: 'http://toutiao-app.itheima.net/v1_0/authorizations',
    // 请求头的对象
    headers: {
      Authorization: `Bearer ${refreshToken}`
    }
  })
}

// state  mutation  action
